package com.rocky.ssm.model;

import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;

public class StaffsExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public StaffsExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        protected void addCriterionForJDBCDate(String condition, Date value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            addCriterion(condition, new java.sql.Date(value.getTime()), property);
        }

        protected void addCriterionForJDBCDate(String condition, List<Date> values, String property) {
            if (values == null || values.size() == 0) {
                throw new RuntimeException("Value list for " + property + " cannot be null or empty");
            }
            List<java.sql.Date> dateList = new ArrayList<java.sql.Date>();
            Iterator<Date> iter = values.iterator();
            while (iter.hasNext()) {
                dateList.add(new java.sql.Date(iter.next().getTime()));
            }
            addCriterion(condition, dateList, property);
        }

        protected void addCriterionForJDBCDate(String condition, Date value1, Date value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            addCriterion(condition, new java.sql.Date(value1.getTime()), new java.sql.Date(value2.getTime()), property);
        }

        public Criteria andStaffIdIsNull() {
            addCriterion("staff_id is null");
            return (Criteria) this;
        }

        public Criteria andStaffIdIsNotNull() {
            addCriterion("staff_id is not null");
            return (Criteria) this;
        }

        public Criteria andStaffIdEqualTo(Integer value) {
            addCriterion("staff_id =", value, "staffId");
            return (Criteria) this;
        }

        public Criteria andStaffIdNotEqualTo(Integer value) {
            addCriterion("staff_id <>", value, "staffId");
            return (Criteria) this;
        }

        public Criteria andStaffIdGreaterThan(Integer value) {
            addCriterion("staff_id >", value, "staffId");
            return (Criteria) this;
        }

        public Criteria andStaffIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("staff_id >=", value, "staffId");
            return (Criteria) this;
        }

        public Criteria andStaffIdLessThan(Integer value) {
            addCriterion("staff_id <", value, "staffId");
            return (Criteria) this;
        }

        public Criteria andStaffIdLessThanOrEqualTo(Integer value) {
            addCriterion("staff_id <=", value, "staffId");
            return (Criteria) this;
        }

        public Criteria andStaffIdIn(List<Integer> values) {
            addCriterion("staff_id in", values, "staffId");
            return (Criteria) this;
        }

        public Criteria andStaffIdNotIn(List<Integer> values) {
            addCriterion("staff_id not in", values, "staffId");
            return (Criteria) this;
        }

        public Criteria andStaffIdBetween(Integer value1, Integer value2) {
            addCriterion("staff_id between", value1, value2, "staffId");
            return (Criteria) this;
        }

        public Criteria andStaffIdNotBetween(Integer value1, Integer value2) {
            addCriterion("staff_id not between", value1, value2, "staffId");
            return (Criteria) this;
        }

        public Criteria andStaffNameIsNull() {
            addCriterion("staff_name is null");
            return (Criteria) this;
        }

        public Criteria andStaffNameIsNotNull() {
            addCriterion("staff_name is not null");
            return (Criteria) this;
        }

        public Criteria andStaffNameEqualTo(String value) {
            addCriterion("staff_name =", value, "staffName");
            return (Criteria) this;
        }

        public Criteria andStaffNameNotEqualTo(String value) {
            addCriterion("staff_name <>", value, "staffName");
            return (Criteria) this;
        }

        public Criteria andStaffNameGreaterThan(String value) {
            addCriterion("staff_name >", value, "staffName");
            return (Criteria) this;
        }

        public Criteria andStaffNameGreaterThanOrEqualTo(String value) {
            addCriterion("staff_name >=", value, "staffName");
            return (Criteria) this;
        }

        public Criteria andStaffNameLessThan(String value) {
            addCriterion("staff_name <", value, "staffName");
            return (Criteria) this;
        }

        public Criteria andStaffNameLessThanOrEqualTo(String value) {
            addCriterion("staff_name <=", value, "staffName");
            return (Criteria) this;
        }

        public Criteria andStaffNameLike(String value) {
            addCriterion("staff_name like", value, "staffName");
            return (Criteria) this;
        }

        public Criteria andStaffNameNotLike(String value) {
            addCriterion("staff_name not like", value, "staffName");
            return (Criteria) this;
        }

        public Criteria andStaffNameIn(List<String> values) {
            addCriterion("staff_name in", values, "staffName");
            return (Criteria) this;
        }

        public Criteria andStaffNameNotIn(List<String> values) {
            addCriterion("staff_name not in", values, "staffName");
            return (Criteria) this;
        }

        public Criteria andStaffNameBetween(String value1, String value2) {
            addCriterion("staff_name between", value1, value2, "staffName");
            return (Criteria) this;
        }

        public Criteria andStaffNameNotBetween(String value1, String value2) {
            addCriterion("staff_name not between", value1, value2, "staffName");
            return (Criteria) this;
        }

        public Criteria andStaffAgeIsNull() {
            addCriterion("staff_age is null");
            return (Criteria) this;
        }

        public Criteria andStaffAgeIsNotNull() {
            addCriterion("staff_age is not null");
            return (Criteria) this;
        }

        public Criteria andStaffAgeEqualTo(Integer value) {
            addCriterion("staff_age =", value, "staffAge");
            return (Criteria) this;
        }

        public Criteria andStaffAgeNotEqualTo(Integer value) {
            addCriterion("staff_age <>", value, "staffAge");
            return (Criteria) this;
        }

        public Criteria andStaffAgeGreaterThan(Integer value) {
            addCriterion("staff_age >", value, "staffAge");
            return (Criteria) this;
        }

        public Criteria andStaffAgeGreaterThanOrEqualTo(Integer value) {
            addCriterion("staff_age >=", value, "staffAge");
            return (Criteria) this;
        }

        public Criteria andStaffAgeLessThan(Integer value) {
            addCriterion("staff_age <", value, "staffAge");
            return (Criteria) this;
        }

        public Criteria andStaffAgeLessThanOrEqualTo(Integer value) {
            addCriterion("staff_age <=", value, "staffAge");
            return (Criteria) this;
        }

        public Criteria andStaffAgeIn(List<Integer> values) {
            addCriterion("staff_age in", values, "staffAge");
            return (Criteria) this;
        }

        public Criteria andStaffAgeNotIn(List<Integer> values) {
            addCriterion("staff_age not in", values, "staffAge");
            return (Criteria) this;
        }

        public Criteria andStaffAgeBetween(Integer value1, Integer value2) {
            addCriterion("staff_age between", value1, value2, "staffAge");
            return (Criteria) this;
        }

        public Criteria andStaffAgeNotBetween(Integer value1, Integer value2) {
            addCriterion("staff_age not between", value1, value2, "staffAge");
            return (Criteria) this;
        }

        public Criteria andStaffGenderIsNull() {
            addCriterion("staff_gender is null");
            return (Criteria) this;
        }

        public Criteria andStaffGenderIsNotNull() {
            addCriterion("staff_gender is not null");
            return (Criteria) this;
        }

        public Criteria andStaffGenderEqualTo(String value) {
            addCriterion("staff_gender =", value, "staffGender");
            return (Criteria) this;
        }

        public Criteria andStaffGenderNotEqualTo(String value) {
            addCriterion("staff_gender <>", value, "staffGender");
            return (Criteria) this;
        }

        public Criteria andStaffGenderGreaterThan(String value) {
            addCriterion("staff_gender >", value, "staffGender");
            return (Criteria) this;
        }

        public Criteria andStaffGenderGreaterThanOrEqualTo(String value) {
            addCriterion("staff_gender >=", value, "staffGender");
            return (Criteria) this;
        }

        public Criteria andStaffGenderLessThan(String value) {
            addCriterion("staff_gender <", value, "staffGender");
            return (Criteria) this;
        }

        public Criteria andStaffGenderLessThanOrEqualTo(String value) {
            addCriterion("staff_gender <=", value, "staffGender");
            return (Criteria) this;
        }

        public Criteria andStaffGenderLike(String value) {
            addCriterion("staff_gender like", value, "staffGender");
            return (Criteria) this;
        }

        public Criteria andStaffGenderNotLike(String value) {
            addCriterion("staff_gender not like", value, "staffGender");
            return (Criteria) this;
        }

        public Criteria andStaffGenderIn(List<String> values) {
            addCriterion("staff_gender in", values, "staffGender");
            return (Criteria) this;
        }

        public Criteria andStaffGenderNotIn(List<String> values) {
            addCriterion("staff_gender not in", values, "staffGender");
            return (Criteria) this;
        }

        public Criteria andStaffGenderBetween(String value1, String value2) {
            addCriterion("staff_gender between", value1, value2, "staffGender");
            return (Criteria) this;
        }

        public Criteria andStaffGenderNotBetween(String value1, String value2) {
            addCriterion("staff_gender not between", value1, value2, "staffGender");
            return (Criteria) this;
        }

        public Criteria andStaffJiguanIsNull() {
            addCriterion("staff_jiguan is null");
            return (Criteria) this;
        }

        public Criteria andStaffJiguanIsNotNull() {
            addCriterion("staff_jiguan is not null");
            return (Criteria) this;
        }

        public Criteria andStaffJiguanEqualTo(String value) {
            addCriterion("staff_jiguan =", value, "staffJiguan");
            return (Criteria) this;
        }

        public Criteria andStaffJiguanNotEqualTo(String value) {
            addCriterion("staff_jiguan <>", value, "staffJiguan");
            return (Criteria) this;
        }

        public Criteria andStaffJiguanGreaterThan(String value) {
            addCriterion("staff_jiguan >", value, "staffJiguan");
            return (Criteria) this;
        }

        public Criteria andStaffJiguanGreaterThanOrEqualTo(String value) {
            addCriterion("staff_jiguan >=", value, "staffJiguan");
            return (Criteria) this;
        }

        public Criteria andStaffJiguanLessThan(String value) {
            addCriterion("staff_jiguan <", value, "staffJiguan");
            return (Criteria) this;
        }

        public Criteria andStaffJiguanLessThanOrEqualTo(String value) {
            addCriterion("staff_jiguan <=", value, "staffJiguan");
            return (Criteria) this;
        }

        public Criteria andStaffJiguanLike(String value) {
            addCriterion("staff_jiguan like", value, "staffJiguan");
            return (Criteria) this;
        }

        public Criteria andStaffJiguanNotLike(String value) {
            addCriterion("staff_jiguan not like", value, "staffJiguan");
            return (Criteria) this;
        }

        public Criteria andStaffJiguanIn(List<String> values) {
            addCriterion("staff_jiguan in", values, "staffJiguan");
            return (Criteria) this;
        }

        public Criteria andStaffJiguanNotIn(List<String> values) {
            addCriterion("staff_jiguan not in", values, "staffJiguan");
            return (Criteria) this;
        }

        public Criteria andStaffJiguanBetween(String value1, String value2) {
            addCriterion("staff_jiguan between", value1, value2, "staffJiguan");
            return (Criteria) this;
        }

        public Criteria andStaffJiguanNotBetween(String value1, String value2) {
            addCriterion("staff_jiguan not between", value1, value2, "staffJiguan");
            return (Criteria) this;
        }

        public Criteria andStaffIdcardIsNull() {
            addCriterion("staff_IDcard is null");
            return (Criteria) this;
        }

        public Criteria andStaffIdcardIsNotNull() {
            addCriterion("staff_IDcard is not null");
            return (Criteria) this;
        }

        public Criteria andStaffIdcardEqualTo(String value) {
            addCriterion("staff_IDcard =", value, "staffIdcard");
            return (Criteria) this;
        }

        public Criteria andStaffIdcardNotEqualTo(String value) {
            addCriterion("staff_IDcard <>", value, "staffIdcard");
            return (Criteria) this;
        }

        public Criteria andStaffIdcardGreaterThan(String value) {
            addCriterion("staff_IDcard >", value, "staffIdcard");
            return (Criteria) this;
        }

        public Criteria andStaffIdcardGreaterThanOrEqualTo(String value) {
            addCriterion("staff_IDcard >=", value, "staffIdcard");
            return (Criteria) this;
        }

        public Criteria andStaffIdcardLessThan(String value) {
            addCriterion("staff_IDcard <", value, "staffIdcard");
            return (Criteria) this;
        }

        public Criteria andStaffIdcardLessThanOrEqualTo(String value) {
            addCriterion("staff_IDcard <=", value, "staffIdcard");
            return (Criteria) this;
        }

        public Criteria andStaffIdcardLike(String value) {
            addCriterion("staff_IDcard like", value, "staffIdcard");
            return (Criteria) this;
        }

        public Criteria andStaffIdcardNotLike(String value) {
            addCriterion("staff_IDcard not like", value, "staffIdcard");
            return (Criteria) this;
        }

        public Criteria andStaffIdcardIn(List<String> values) {
            addCriterion("staff_IDcard in", values, "staffIdcard");
            return (Criteria) this;
        }

        public Criteria andStaffIdcardNotIn(List<String> values) {
            addCriterion("staff_IDcard not in", values, "staffIdcard");
            return (Criteria) this;
        }

        public Criteria andStaffIdcardBetween(String value1, String value2) {
            addCriterion("staff_IDcard between", value1, value2, "staffIdcard");
            return (Criteria) this;
        }

        public Criteria andStaffIdcardNotBetween(String value1, String value2) {
            addCriterion("staff_IDcard not between", value1, value2, "staffIdcard");
            return (Criteria) this;
        }

        public Criteria andStaffBirthIsNull() {
            addCriterion("staff_birth is null");
            return (Criteria) this;
        }

        public Criteria andStaffBirthIsNotNull() {
            addCriterion("staff_birth is not null");
            return (Criteria) this;
        }

        public Criteria andStaffBirthEqualTo(String value) {
            addCriterion("staff_birth =", value, "staffBirth");
            return (Criteria) this;
        }

        public Criteria andStaffBirthNotEqualTo(String value) {
            addCriterion("staff_birth <>", value, "staffBirth");
            return (Criteria) this;
        }

        public Criteria andStaffBirthGreaterThan(String value) {
            addCriterion("staff_birth >", value, "staffBirth");
            return (Criteria) this;
        }

        public Criteria andStaffBirthGreaterThanOrEqualTo(String value) {
            addCriterion("staff_birth >=", value, "staffBirth");
            return (Criteria) this;
        }

        public Criteria andStaffBirthLessThan(String value) {
            addCriterion("staff_birth <", value, "staffBirth");
            return (Criteria) this;
        }

        public Criteria andStaffBirthLessThanOrEqualTo(String value) {
            addCriterion("staff_birth <=", value, "staffBirth");
            return (Criteria) this;
        }

        public Criteria andStaffBirthLike(String value) {
            addCriterion("staff_birth like", value, "staffBirth");
            return (Criteria) this;
        }

        public Criteria andStaffBirthNotLike(String value) {
            addCriterion("staff_birth not like", value, "staffBirth");
            return (Criteria) this;
        }

        public Criteria andStaffBirthIn(List<String> values) {
            addCriterion("staff_birth in", values, "staffBirth");
            return (Criteria) this;
        }

        public Criteria andStaffBirthNotIn(List<String> values) {
            addCriterion("staff_birth not in", values, "staffBirth");
            return (Criteria) this;
        }

        public Criteria andStaffBirthBetween(String value1, String value2) {
            addCriterion("staff_birth between", value1, value2, "staffBirth");
            return (Criteria) this;
        }

        public Criteria andStaffBirthNotBetween(String value1, String value2) {
            addCriterion("staff_birth not between", value1, value2, "staffBirth");
            return (Criteria) this;
        }

        public Criteria andStaffOfficePhoneIsNull() {
            addCriterion("staff_office_phone is null");
            return (Criteria) this;
        }

        public Criteria andStaffOfficePhoneIsNotNull() {
            addCriterion("staff_office_phone is not null");
            return (Criteria) this;
        }

        public Criteria andStaffOfficePhoneEqualTo(String value) {
            addCriterion("staff_office_phone =", value, "staffOfficePhone");
            return (Criteria) this;
        }

        public Criteria andStaffOfficePhoneNotEqualTo(String value) {
            addCriterion("staff_office_phone <>", value, "staffOfficePhone");
            return (Criteria) this;
        }

        public Criteria andStaffOfficePhoneGreaterThan(String value) {
            addCriterion("staff_office_phone >", value, "staffOfficePhone");
            return (Criteria) this;
        }

        public Criteria andStaffOfficePhoneGreaterThanOrEqualTo(String value) {
            addCriterion("staff_office_phone >=", value, "staffOfficePhone");
            return (Criteria) this;
        }

        public Criteria andStaffOfficePhoneLessThan(String value) {
            addCriterion("staff_office_phone <", value, "staffOfficePhone");
            return (Criteria) this;
        }

        public Criteria andStaffOfficePhoneLessThanOrEqualTo(String value) {
            addCriterion("staff_office_phone <=", value, "staffOfficePhone");
            return (Criteria) this;
        }

        public Criteria andStaffOfficePhoneLike(String value) {
            addCriterion("staff_office_phone like", value, "staffOfficePhone");
            return (Criteria) this;
        }

        public Criteria andStaffOfficePhoneNotLike(String value) {
            addCriterion("staff_office_phone not like", value, "staffOfficePhone");
            return (Criteria) this;
        }

        public Criteria andStaffOfficePhoneIn(List<String> values) {
            addCriterion("staff_office_phone in", values, "staffOfficePhone");
            return (Criteria) this;
        }

        public Criteria andStaffOfficePhoneNotIn(List<String> values) {
            addCriterion("staff_office_phone not in", values, "staffOfficePhone");
            return (Criteria) this;
        }

        public Criteria andStaffOfficePhoneBetween(String value1, String value2) {
            addCriterion("staff_office_phone between", value1, value2, "staffOfficePhone");
            return (Criteria) this;
        }

        public Criteria andStaffOfficePhoneNotBetween(String value1, String value2) {
            addCriterion("staff_office_phone not between", value1, value2, "staffOfficePhone");
            return (Criteria) this;
        }

        public Criteria andStaffEmailIsNull() {
            addCriterion("staff_email is null");
            return (Criteria) this;
        }

        public Criteria andStaffEmailIsNotNull() {
            addCriterion("staff_email is not null");
            return (Criteria) this;
        }

        public Criteria andStaffEmailEqualTo(String value) {
            addCriterion("staff_email =", value, "staffEmail");
            return (Criteria) this;
        }

        public Criteria andStaffEmailNotEqualTo(String value) {
            addCriterion("staff_email <>", value, "staffEmail");
            return (Criteria) this;
        }

        public Criteria andStaffEmailGreaterThan(String value) {
            addCriterion("staff_email >", value, "staffEmail");
            return (Criteria) this;
        }

        public Criteria andStaffEmailGreaterThanOrEqualTo(String value) {
            addCriterion("staff_email >=", value, "staffEmail");
            return (Criteria) this;
        }

        public Criteria andStaffEmailLessThan(String value) {
            addCriterion("staff_email <", value, "staffEmail");
            return (Criteria) this;
        }

        public Criteria andStaffEmailLessThanOrEqualTo(String value) {
            addCriterion("staff_email <=", value, "staffEmail");
            return (Criteria) this;
        }

        public Criteria andStaffEmailLike(String value) {
            addCriterion("staff_email like", value, "staffEmail");
            return (Criteria) this;
        }

        public Criteria andStaffEmailNotLike(String value) {
            addCriterion("staff_email not like", value, "staffEmail");
            return (Criteria) this;
        }

        public Criteria andStaffEmailIn(List<String> values) {
            addCriterion("staff_email in", values, "staffEmail");
            return (Criteria) this;
        }

        public Criteria andStaffEmailNotIn(List<String> values) {
            addCriterion("staff_email not in", values, "staffEmail");
            return (Criteria) this;
        }

        public Criteria andStaffEmailBetween(String value1, String value2) {
            addCriterion("staff_email between", value1, value2, "staffEmail");
            return (Criteria) this;
        }

        public Criteria andStaffEmailNotBetween(String value1, String value2) {
            addCriterion("staff_email not between", value1, value2, "staffEmail");
            return (Criteria) this;
        }

        public Criteria andStaffTelIsNull() {
            addCriterion("staff_tel is null");
            return (Criteria) this;
        }

        public Criteria andStaffTelIsNotNull() {
            addCriterion("staff_tel is not null");
            return (Criteria) this;
        }

        public Criteria andStaffTelEqualTo(String value) {
            addCriterion("staff_tel =", value, "staffTel");
            return (Criteria) this;
        }

        public Criteria andStaffTelNotEqualTo(String value) {
            addCriterion("staff_tel <>", value, "staffTel");
            return (Criteria) this;
        }

        public Criteria andStaffTelGreaterThan(String value) {
            addCriterion("staff_tel >", value, "staffTel");
            return (Criteria) this;
        }

        public Criteria andStaffTelGreaterThanOrEqualTo(String value) {
            addCriterion("staff_tel >=", value, "staffTel");
            return (Criteria) this;
        }

        public Criteria andStaffTelLessThan(String value) {
            addCriterion("staff_tel <", value, "staffTel");
            return (Criteria) this;
        }

        public Criteria andStaffTelLessThanOrEqualTo(String value) {
            addCriterion("staff_tel <=", value, "staffTel");
            return (Criteria) this;
        }

        public Criteria andStaffTelLike(String value) {
            addCriterion("staff_tel like", value, "staffTel");
            return (Criteria) this;
        }

        public Criteria andStaffTelNotLike(String value) {
            addCriterion("staff_tel not like", value, "staffTel");
            return (Criteria) this;
        }

        public Criteria andStaffTelIn(List<String> values) {
            addCriterion("staff_tel in", values, "staffTel");
            return (Criteria) this;
        }

        public Criteria andStaffTelNotIn(List<String> values) {
            addCriterion("staff_tel not in", values, "staffTel");
            return (Criteria) this;
        }

        public Criteria andStaffTelBetween(String value1, String value2) {
            addCriterion("staff_tel between", value1, value2, "staffTel");
            return (Criteria) this;
        }

        public Criteria andStaffTelNotBetween(String value1, String value2) {
            addCriterion("staff_tel not between", value1, value2, "staffTel");
            return (Criteria) this;
        }

        public Criteria andStaffAddressIsNull() {
            addCriterion("staff_address is null");
            return (Criteria) this;
        }

        public Criteria andStaffAddressIsNotNull() {
            addCriterion("staff_address is not null");
            return (Criteria) this;
        }

        public Criteria andStaffAddressEqualTo(String value) {
            addCriterion("staff_address =", value, "staffAddress");
            return (Criteria) this;
        }

        public Criteria andStaffAddressNotEqualTo(String value) {
            addCriterion("staff_address <>", value, "staffAddress");
            return (Criteria) this;
        }

        public Criteria andStaffAddressGreaterThan(String value) {
            addCriterion("staff_address >", value, "staffAddress");
            return (Criteria) this;
        }

        public Criteria andStaffAddressGreaterThanOrEqualTo(String value) {
            addCriterion("staff_address >=", value, "staffAddress");
            return (Criteria) this;
        }

        public Criteria andStaffAddressLessThan(String value) {
            addCriterion("staff_address <", value, "staffAddress");
            return (Criteria) this;
        }

        public Criteria andStaffAddressLessThanOrEqualTo(String value) {
            addCriterion("staff_address <=", value, "staffAddress");
            return (Criteria) this;
        }

        public Criteria andStaffAddressLike(String value) {
            addCriterion("staff_address like", value, "staffAddress");
            return (Criteria) this;
        }

        public Criteria andStaffAddressNotLike(String value) {
            addCriterion("staff_address not like", value, "staffAddress");
            return (Criteria) this;
        }

        public Criteria andStaffAddressIn(List<String> values) {
            addCriterion("staff_address in", values, "staffAddress");
            return (Criteria) this;
        }

        public Criteria andStaffAddressNotIn(List<String> values) {
            addCriterion("staff_address not in", values, "staffAddress");
            return (Criteria) this;
        }

        public Criteria andStaffAddressBetween(String value1, String value2) {
            addCriterion("staff_address between", value1, value2, "staffAddress");
            return (Criteria) this;
        }

        public Criteria andStaffAddressNotBetween(String value1, String value2) {
            addCriterion("staff_address not between", value1, value2, "staffAddress");
            return (Criteria) this;
        }

        public Criteria andStaffQqIsNull() {
            addCriterion("staff_QQ is null");
            return (Criteria) this;
        }

        public Criteria andStaffQqIsNotNull() {
            addCriterion("staff_QQ is not null");
            return (Criteria) this;
        }

        public Criteria andStaffQqEqualTo(String value) {
            addCriterion("staff_QQ =", value, "staffQq");
            return (Criteria) this;
        }

        public Criteria andStaffQqNotEqualTo(String value) {
            addCriterion("staff_QQ <>", value, "staffQq");
            return (Criteria) this;
        }

        public Criteria andStaffQqGreaterThan(String value) {
            addCriterion("staff_QQ >", value, "staffQq");
            return (Criteria) this;
        }

        public Criteria andStaffQqGreaterThanOrEqualTo(String value) {
            addCriterion("staff_QQ >=", value, "staffQq");
            return (Criteria) this;
        }

        public Criteria andStaffQqLessThan(String value) {
            addCriterion("staff_QQ <", value, "staffQq");
            return (Criteria) this;
        }

        public Criteria andStaffQqLessThanOrEqualTo(String value) {
            addCriterion("staff_QQ <=", value, "staffQq");
            return (Criteria) this;
        }

        public Criteria andStaffQqLike(String value) {
            addCriterion("staff_QQ like", value, "staffQq");
            return (Criteria) this;
        }

        public Criteria andStaffQqNotLike(String value) {
            addCriterion("staff_QQ not like", value, "staffQq");
            return (Criteria) this;
        }

        public Criteria andStaffQqIn(List<String> values) {
            addCriterion("staff_QQ in", values, "staffQq");
            return (Criteria) this;
        }

        public Criteria andStaffQqNotIn(List<String> values) {
            addCriterion("staff_QQ not in", values, "staffQq");
            return (Criteria) this;
        }

        public Criteria andStaffQqBetween(String value1, String value2) {
            addCriterion("staff_QQ between", value1, value2, "staffQq");
            return (Criteria) this;
        }

        public Criteria andStaffQqNotBetween(String value1, String value2) {
            addCriterion("staff_QQ not between", value1, value2, "staffQq");
            return (Criteria) this;
        }

        public Criteria andStaffEntryDateIsNull() {
            addCriterion("staff_entry_date is null");
            return (Criteria) this;
        }

        public Criteria andStaffEntryDateIsNotNull() {
            addCriterion("staff_entry_date is not null");
            return (Criteria) this;
        }

        public Criteria andStaffEntryDateEqualTo(Date value) {
            addCriterionForJDBCDate("staff_entry_date =", value, "staffEntryDate");
            return (Criteria) this;
        }

        public Criteria andStaffEntryDateNotEqualTo(Date value) {
            addCriterionForJDBCDate("staff_entry_date <>", value, "staffEntryDate");
            return (Criteria) this;
        }

        public Criteria andStaffEntryDateGreaterThan(Date value) {
            addCriterionForJDBCDate("staff_entry_date >", value, "staffEntryDate");
            return (Criteria) this;
        }

        public Criteria andStaffEntryDateGreaterThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("staff_entry_date >=", value, "staffEntryDate");
            return (Criteria) this;
        }

        public Criteria andStaffEntryDateLessThan(Date value) {
            addCriterionForJDBCDate("staff_entry_date <", value, "staffEntryDate");
            return (Criteria) this;
        }

        public Criteria andStaffEntryDateLessThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("staff_entry_date <=", value, "staffEntryDate");
            return (Criteria) this;
        }

        public Criteria andStaffEntryDateIn(List<Date> values) {
            addCriterionForJDBCDate("staff_entry_date in", values, "staffEntryDate");
            return (Criteria) this;
        }

        public Criteria andStaffEntryDateNotIn(List<Date> values) {
            addCriterionForJDBCDate("staff_entry_date not in", values, "staffEntryDate");
            return (Criteria) this;
        }

        public Criteria andStaffEntryDateBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("staff_entry_date between", value1, value2, "staffEntryDate");
            return (Criteria) this;
        }

        public Criteria andStaffEntryDateNotBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("staff_entry_date not between", value1, value2, "staffEntryDate");
            return (Criteria) this;
        }

        public Criteria andStaffEduDegreeIsNull() {
            addCriterion("staff_edu_degree is null");
            return (Criteria) this;
        }

        public Criteria andStaffEduDegreeIsNotNull() {
            addCriterion("staff_edu_degree is not null");
            return (Criteria) this;
        }

        public Criteria andStaffEduDegreeEqualTo(String value) {
            addCriterion("staff_edu_degree =", value, "staffEduDegree");
            return (Criteria) this;
        }

        public Criteria andStaffEduDegreeNotEqualTo(String value) {
            addCriterion("staff_edu_degree <>", value, "staffEduDegree");
            return (Criteria) this;
        }

        public Criteria andStaffEduDegreeGreaterThan(String value) {
            addCriterion("staff_edu_degree >", value, "staffEduDegree");
            return (Criteria) this;
        }

        public Criteria andStaffEduDegreeGreaterThanOrEqualTo(String value) {
            addCriterion("staff_edu_degree >=", value, "staffEduDegree");
            return (Criteria) this;
        }

        public Criteria andStaffEduDegreeLessThan(String value) {
            addCriterion("staff_edu_degree <", value, "staffEduDegree");
            return (Criteria) this;
        }

        public Criteria andStaffEduDegreeLessThanOrEqualTo(String value) {
            addCriterion("staff_edu_degree <=", value, "staffEduDegree");
            return (Criteria) this;
        }

        public Criteria andStaffEduDegreeLike(String value) {
            addCriterion("staff_edu_degree like", value, "staffEduDegree");
            return (Criteria) this;
        }

        public Criteria andStaffEduDegreeNotLike(String value) {
            addCriterion("staff_edu_degree not like", value, "staffEduDegree");
            return (Criteria) this;
        }

        public Criteria andStaffEduDegreeIn(List<String> values) {
            addCriterion("staff_edu_degree in", values, "staffEduDegree");
            return (Criteria) this;
        }

        public Criteria andStaffEduDegreeNotIn(List<String> values) {
            addCriterion("staff_edu_degree not in", values, "staffEduDegree");
            return (Criteria) this;
        }

        public Criteria andStaffEduDegreeBetween(String value1, String value2) {
            addCriterion("staff_edu_degree between", value1, value2, "staffEduDegree");
            return (Criteria) this;
        }

        public Criteria andStaffEduDegreeNotBetween(String value1, String value2) {
            addCriterion("staff_edu_degree not between", value1, value2, "staffEduDegree");
            return (Criteria) this;
        }

        public Criteria andStaffTypeIsNull() {
            addCriterion("staff_type is null");
            return (Criteria) this;
        }

        public Criteria andStaffTypeIsNotNull() {
            addCriterion("staff_type is not null");
            return (Criteria) this;
        }

        public Criteria andStaffTypeEqualTo(String value) {
            addCriterion("staff_type =", value, "staffType");
            return (Criteria) this;
        }

        public Criteria andStaffTypeNotEqualTo(String value) {
            addCriterion("staff_type <>", value, "staffType");
            return (Criteria) this;
        }

        public Criteria andStaffTypeGreaterThan(String value) {
            addCriterion("staff_type >", value, "staffType");
            return (Criteria) this;
        }

        public Criteria andStaffTypeGreaterThanOrEqualTo(String value) {
            addCriterion("staff_type >=", value, "staffType");
            return (Criteria) this;
        }

        public Criteria andStaffTypeLessThan(String value) {
            addCriterion("staff_type <", value, "staffType");
            return (Criteria) this;
        }

        public Criteria andStaffTypeLessThanOrEqualTo(String value) {
            addCriterion("staff_type <=", value, "staffType");
            return (Criteria) this;
        }

        public Criteria andStaffTypeLike(String value) {
            addCriterion("staff_type like", value, "staffType");
            return (Criteria) this;
        }

        public Criteria andStaffTypeNotLike(String value) {
            addCriterion("staff_type not like", value, "staffType");
            return (Criteria) this;
        }

        public Criteria andStaffTypeIn(List<String> values) {
            addCriterion("staff_type in", values, "staffType");
            return (Criteria) this;
        }

        public Criteria andStaffTypeNotIn(List<String> values) {
            addCriterion("staff_type not in", values, "staffType");
            return (Criteria) this;
        }

        public Criteria andStaffTypeBetween(String value1, String value2) {
            addCriterion("staff_type between", value1, value2, "staffType");
            return (Criteria) this;
        }

        public Criteria andStaffTypeNotBetween(String value1, String value2) {
            addCriterion("staff_type not between", value1, value2, "staffType");
            return (Criteria) this;
        }

        public Criteria andStaffRemarkIsNull() {
            addCriterion("staff_remark is null");
            return (Criteria) this;
        }

        public Criteria andStaffRemarkIsNotNull() {
            addCriterion("staff_remark is not null");
            return (Criteria) this;
        }

        public Criteria andStaffRemarkEqualTo(String value) {
            addCriterion("staff_remark =", value, "staffRemark");
            return (Criteria) this;
        }

        public Criteria andStaffRemarkNotEqualTo(String value) {
            addCriterion("staff_remark <>", value, "staffRemark");
            return (Criteria) this;
        }

        public Criteria andStaffRemarkGreaterThan(String value) {
            addCriterion("staff_remark >", value, "staffRemark");
            return (Criteria) this;
        }

        public Criteria andStaffRemarkGreaterThanOrEqualTo(String value) {
            addCriterion("staff_remark >=", value, "staffRemark");
            return (Criteria) this;
        }

        public Criteria andStaffRemarkLessThan(String value) {
            addCriterion("staff_remark <", value, "staffRemark");
            return (Criteria) this;
        }

        public Criteria andStaffRemarkLessThanOrEqualTo(String value) {
            addCriterion("staff_remark <=", value, "staffRemark");
            return (Criteria) this;
        }

        public Criteria andStaffRemarkLike(String value) {
            addCriterion("staff_remark like", value, "staffRemark");
            return (Criteria) this;
        }

        public Criteria andStaffRemarkNotLike(String value) {
            addCriterion("staff_remark not like", value, "staffRemark");
            return (Criteria) this;
        }

        public Criteria andStaffRemarkIn(List<String> values) {
            addCriterion("staff_remark in", values, "staffRemark");
            return (Criteria) this;
        }

        public Criteria andStaffRemarkNotIn(List<String> values) {
            addCriterion("staff_remark not in", values, "staffRemark");
            return (Criteria) this;
        }

        public Criteria andStaffRemarkBetween(String value1, String value2) {
            addCriterion("staff_remark between", value1, value2, "staffRemark");
            return (Criteria) this;
        }

        public Criteria andStaffRemarkNotBetween(String value1, String value2) {
            addCriterion("staff_remark not between", value1, value2, "staffRemark");
            return (Criteria) this;
        }

        public Criteria andStaffUsernameIsNull() {
            addCriterion("staff_username is null");
            return (Criteria) this;
        }

        public Criteria andStaffUsernameIsNotNull() {
            addCriterion("staff_username is not null");
            return (Criteria) this;
        }

        public Criteria andStaffUsernameEqualTo(String value) {
            addCriterion("staff_username =", value, "staffUsername");
            return (Criteria) this;
        }

        public Criteria andStaffUsernameNotEqualTo(String value) {
            addCriterion("staff_username <>", value, "staffUsername");
            return (Criteria) this;
        }

        public Criteria andStaffUsernameGreaterThan(String value) {
            addCriterion("staff_username >", value, "staffUsername");
            return (Criteria) this;
        }

        public Criteria andStaffUsernameGreaterThanOrEqualTo(String value) {
            addCriterion("staff_username >=", value, "staffUsername");
            return (Criteria) this;
        }

        public Criteria andStaffUsernameLessThan(String value) {
            addCriterion("staff_username <", value, "staffUsername");
            return (Criteria) this;
        }

        public Criteria andStaffUsernameLessThanOrEqualTo(String value) {
            addCriterion("staff_username <=", value, "staffUsername");
            return (Criteria) this;
        }

        public Criteria andStaffUsernameLike(String value) {
            addCriterion("staff_username like", value, "staffUsername");
            return (Criteria) this;
        }

        public Criteria andStaffUsernameNotLike(String value) {
            addCriterion("staff_username not like", value, "staffUsername");
            return (Criteria) this;
        }

        public Criteria andStaffUsernameIn(List<String> values) {
            addCriterion("staff_username in", values, "staffUsername");
            return (Criteria) this;
        }

        public Criteria andStaffUsernameNotIn(List<String> values) {
            addCriterion("staff_username not in", values, "staffUsername");
            return (Criteria) this;
        }

        public Criteria andStaffUsernameBetween(String value1, String value2) {
            addCriterion("staff_username between", value1, value2, "staffUsername");
            return (Criteria) this;
        }

        public Criteria andStaffUsernameNotBetween(String value1, String value2) {
            addCriterion("staff_username not between", value1, value2, "staffUsername");
            return (Criteria) this;
        }

        public Criteria andStaffPasswordIsNull() {
            addCriterion("staff_password is null");
            return (Criteria) this;
        }

        public Criteria andStaffPasswordIsNotNull() {
            addCriterion("staff_password is not null");
            return (Criteria) this;
        }

        public Criteria andStaffPasswordEqualTo(String value) {
            addCriterion("staff_password =", value, "staffPassword");
            return (Criteria) this;
        }

        public Criteria andStaffPasswordNotEqualTo(String value) {
            addCriterion("staff_password <>", value, "staffPassword");
            return (Criteria) this;
        }

        public Criteria andStaffPasswordGreaterThan(String value) {
            addCriterion("staff_password >", value, "staffPassword");
            return (Criteria) this;
        }

        public Criteria andStaffPasswordGreaterThanOrEqualTo(String value) {
            addCriterion("staff_password >=", value, "staffPassword");
            return (Criteria) this;
        }

        public Criteria andStaffPasswordLessThan(String value) {
            addCriterion("staff_password <", value, "staffPassword");
            return (Criteria) this;
        }

        public Criteria andStaffPasswordLessThanOrEqualTo(String value) {
            addCriterion("staff_password <=", value, "staffPassword");
            return (Criteria) this;
        }

        public Criteria andStaffPasswordLike(String value) {
            addCriterion("staff_password like", value, "staffPassword");
            return (Criteria) this;
        }

        public Criteria andStaffPasswordNotLike(String value) {
            addCriterion("staff_password not like", value, "staffPassword");
            return (Criteria) this;
        }

        public Criteria andStaffPasswordIn(List<String> values) {
            addCriterion("staff_password in", values, "staffPassword");
            return (Criteria) this;
        }

        public Criteria andStaffPasswordNotIn(List<String> values) {
            addCriterion("staff_password not in", values, "staffPassword");
            return (Criteria) this;
        }

        public Criteria andStaffPasswordBetween(String value1, String value2) {
            addCriterion("staff_password between", value1, value2, "staffPassword");
            return (Criteria) this;
        }

        public Criteria andStaffPasswordNotBetween(String value1, String value2) {
            addCriterion("staff_password not between", value1, value2, "staffPassword");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}